The present invention generally relates to a fluid transfusing device and a method of control therefor for injecting into a body.
A fluid transfusing pump to be used in the clinical examination at the hospital had only one pump driving portion per unit at the beginning of the development thereof. Medical fluids may be transfused with the use of as many as ten to fifteen fluid transfusing pumps per patient when the curing operation is effected with respect to patients of advanced diseases. In such a case, an electrocardiograph, a pulmotor, a clinical thermometer and so on had to be used at the same time with respect to the patient, thus making the small sick-room much narrower in space and the bed and its vicinity complicated. Activities by doctors and nurses engaged in curing operations were interfered with. Therefore, a transfusing pump with two pump driving portions or more provided in it has been developed so as to better use the sick-room.
A function of feeding the fluid while automatically switching an operation with a plurality of fluid transfusing patterns being stored, a function of storing transfused fluid accumulated values for each unit time with a clocking means, a function of storing the pump accumulated operation time so as to call out, many adding functions such as controlling operation and so on through communications by a computer are demanded, in addition to a basic function of a fluid transfusing pump for feeding the medical fluid. Thus, biger burdens are applied only upon one microprocessor (central processing unit). The details thereof will be described hereinafter.
The conventional fluid transfusing pump has one microprocessor control the plurality of pump driving portions even in the conventional fluid transfusing pump having a plurality of pump driving portions. This is because the motor driving pulses can be outputted without delay with respect to a plurality of pump driving portions especially without improvements in software as additional functions in the fluid transfusing pump are less and burdens demanded by the microprocessor are less.
In FIG. 4, the electrical construction of the conventional fluid transfusing pump having two pump driving portions is shown as a block diagram. The fluid transfusing pump is a positive pressure peristaltic type of vein injecting apparatus, and is used together with a fluid transfusing set. Two pump driving portions are provided, because two medical fluids, whose effects are different, are transfused at the same time at fluid feeding speeds different at the same time. This is satisfactory only when the fluids are fed correctly at a set speed with two independent pumps.
In FIG. 4, reference numerals 1a, 1b are first and second pump head portions, which apply fluid feeding force by the depressing pressure of a tube with a a straight line peristaltic type of fluid transfusing pump mechanism designed for fluid feeding set use. The pump head portions 1a, 1b are adapted to be driven by first and second stepping motors not shown. Reference numerals 2a, 2b are first and second motor driving circuits for driving the respective stepping motors with the motor driving pulses to be outputted from the microprocessor (central processing unit) 100. Reference numerals 3a, 3b are motor rotation detecting circuits for reporting to the microprocessor 100 each time the fluid feeding amount through the respective pump head portions 1a, 1b by the respective motor driving circuits 2a, 2b becomes a unit flow quantity in accordance with the detection of the rotation amount of the respective pump driving portions. Reference numerals 4a, 4b are first and second upper flow block detecting circuits for detecting the pressure reduction caused by abnormalities such as choking and so on of filters in the fluid feeding set between each medical fluid bag and the pump driving portion. When the transfusing pump is operated and a warning is issued from the upper flow block detecting circuits, the driving operation of the pump is adapted to be stopped. Reference numerals 5a, 5b are first and second lower flow choke detecting circuits for detecting the pressure rise caused by abnormalities such as choking and so on in the fluid transfusing tube between the respective pump driving portion and the patient. When the transferring pump is operated and a warning is issued by the lower flow block detecting circuits, the driving operation of the pump is adapted to be stopped. Reference numerals 6a, 6b are first and second air bubble detecting circuits for detecting the air bubbles caused, of regulated amount or more, within each fluid transfusing tube. When the transferring pump is operated and a warning is issued by the air bubble detecting circuits, the driving operation of the pump is stopped to prevent the air bubbles from going into blood vessels of the patient. Reference numerals 7a, 7b are first and second door open detecting circuits for detecting the open condition of the door for opening and, closing the pump driving portion when the fluid transfusion tube is set into the pump driving portion. When the door is unexpectedly opened during the driving operation of the pump driving portion, a warning is issued and, the driving operation of the pump is adapted to be stopped. Reference numerals 8a, 8b are first and second driving condition displaying portions for lamp-displaying the fluid transfusing operation, the non-operation and the warning about the pump driving portion. Reference numerals 9a, 9b are first and second warning displaying portions for displaying all the warning messages about the respective pump driving portions. Reference numerals 10a, 10b are first and second displaying portions for displaying all the information about the fluid transfusion such as fluid transfusion amount, predetermined fluid transfusion amount, accumulated fluid transfusion values and so on with respect to the respective pump driving portions.
Reference numeral 100 is a microprocessor (central processing unit) in charge of the controlling operation of the whole fluid transfusing pump and is provided with a counter, a register, and flags (FRC, OCR1, OCR2, OCRFLG) to be described later. Reference numeral 200 is a ROM (read only memory) where a program for operating the microprocessor 100 is accommodated.
Software for controlling the output of the motor driving pulses exists in the ROM200. Reference numeral 300 is a RAM (random access memory) where the fluid transfusion amount, the predetermined fluid transfusion amount key-inputted, the accumulated fluid transfusion values and the other types of data processed in operation by the microprocessor 100 are stored.
Reference numeral 11 is a key panel portion for key-inputting the various types of instructions. Numeric keys for inputting the fluid transfusion amount the predetermined fluid transfusion amount for setting the driving speed and time of the respective pump driving portions; a control key for supporting the inputs; a start key for starting the pump driving portion; a stop key for stopping the pump driving portion; a call key for displaying the accumulated fluid transfusion values and so on are provided on the key panel 11. Reference numeral 12 is a panel lock switch for making the inputs of the various types of keys prohibitive including the power key so that operations cannot be effected without permission. Reference numeral 13 is a power circuit for feeding the power to the respective circuit portions in the fluid transfusion pump. Reference numerals 14a, 14b are first and second power switches for turning on and off the power with respect to the first and second pump driving portions from the power circuit 13. Reference numeral 15 is a battery voltage detecting circuit for generating a warning, and, turning off the respective pump driving portion when the voltage of the storage battery is detected and becomes a given value or lower. The storage battery is charged by the power circuit 13 during the AC operation by the power circuit 13. Reference numeral 16 is a buzzer driving circuit for driving a warning sound generator when a warning condition has been judged. Reference numeral 17 is an A/D converting circuit converts voltage values into digital values for use by the microprocessor 100. The voltage values converted include the voltage values representing the currents flowing into the pump driving motor in the respective motor driving circuits 2a, 2b the detected voltage values from the respective air bubbles detecting circuits 6a, 6b, and the battery voltage values from the battery voltage detecting circuit 15.
A method of controlling two pump driving portions in the fluid transfusion pump will be described hereinafter.
The microprocessor 100 has the following counter and register. They are all composed of 16 bits.
FRC (Free Running Counter)
OCRI (Output Compare Register 1)
OCR2 (Output Compare Register 2)
The time counter FRC is a counter for automatically effecting an up count (increment) for each 500 nsec by the internal function of the microprocessor 100 independently from the execution of the software controlling the microprocessor 100. The time counter FRC starts from "0" and increases to "FFFF" (hexadecimal representation) a resetting operation is effected after the outputting of FFFF so as to return to "0" again. The OCR1 is a register for a first pump driving portion use. The OCR2 is a register for a second pump driving portion use. Both the resisters OCR1, OCR2 are adapted to write or read independently with each other the values from the "0" to "FFFF". Comparative reference values for timing control use the outputs of the motor driving pulses with respect to the first and second pump driving portions these values are inputted respectively to both the registers OCR1, OCR2.
Two output compare interrupts
OCI1 (Output Compare Interrupt 1)
OCI2 (Output Compare Interrupt 2) are adapted to be generated as the interrupt function of the software.
A first interrupt OCI1 is generated when the count value by the time counter FRC has conformed to the content (comparative reference value) of the first register OCR1 (FRC=OCR1). A second interrupt OCI2 is generated when the count value by the time counter FRC has conformed to the content (comparative reference value) of the second register OCR2 (FRC=OCR2). The comparative reference value of the first register OCR1 and the comparative reference value of the second register OCR2 are handled independently with respect to each other. Accordingly, although the generation of the first interrupt OCI1 and the generation of the second interrupt OCI2 are independent with respect to each other, the execution address (subroutine) on the software to be executed after the interrupt generation becomes common. The common execution location (execution module) is represented as the interrupt OCI.
It is necessary to tell whether the cause exists in a first interrupt OCI1 or in a second interrupt OCI2 in the execution of the common interrupt OCI.
An 8-bit flag OCRFLG to be set by the internal function of the microprocessor 100 is prepared. It is adapted to be recognized by a first interrupt OCI1 when a first bit of the flag OCRFLG is set to "1". It is adapted to be recognized by a second interrupt OCI2 when a second bit of the flag OCRFLG is set to the "1". Although each bit of the flag OCRELG can reset to "0" by the-software, it cannot be set to the "1". The bit can be set to the "1" by the microprocessor 100 only when first or second interrupts OCI1, OCI2 have generated. As the first interrupt OCI1 and the second interrupt OCI2 can be generated independently, the first and second bits of the flag OCRFLG can be also made "1" at the same time.
A method of outputting the motor driving pulses for concrete motor controlling operation will be described in a first pump driving portion.
Assume that the time interval value of the motor driving pulse is d. Assume that the count value of the time counter FRC is, for example, EQU FRC=f.sub.0
in the timing of the driving start of the pump. The output timing of a first motor driving pulse is EQU FRC=f.sub.0 +d
The content of the first register OCR1 is set to put
OCR1=f.sub.0 +d the first interrupt OCI1 in a generable condition. When the time has become (f.sub.0 .div.d), the count value of the time counter FRC becomes as follows, EQU FRC=f.sub.0 +d EQU FRC=OCR1
a first interrupt OCI1 is generated and a first motor driving pulse is outputted.
Assume that EQU f.sub.1 =f.sub.0 +d
and the content of a first register OCR1 is set EQU OCR1=f.sub.1 +d
a second motor driving pulse is outputted in the time (f.sub.1 .div.d=f.sub.0 +2d). The microprocessor 100 effects the processing operation except for the pump driving operation within the time d from a certain interrupt OCI1 to the next interrupt OCI1.
In the past, two pump driving portions were controlled with such a flow chart shown in FIG. 5 by the use of such specification of microprocessor 100 as described hereinabove. A controlling operation will be described concretely hereinafter.
When a count value of a time counter FRC conforms to the content of first or second register OCR1, OCR2 so as to generate the interrupt OCI, the microprocessor 100 temporarily interrupts the program during the execution at present so as to start the execution of the interrupt OCI processing module. At a step n1, it is judged whether or not a first bit of a flag OCRFLG is set to "1", namely, the interrupt OCI depends upon a first interrupt OCI1. When the judgment is affirmative, the step goes to a step n2 so as to reset to the "0" the first bit of the flag OCRFLG. Then, at a step n3, a motor driving pulse is outputted with respect to a first motor driving circuit 2a for driving a first pump driving portion. At a step n4, a value to become, next, a time counter FRC=OCR1 is obtained by the calculation as preparation for generating the next first interrupt OCI1 so as to set the calculation result in the first register OCR1. Then, the step returns to the interrupt address so as to resume the temporarily interrupted program.
When a first bit of the flag OCRFLG becomes "0" in the judgment of the step n1, it is judged that the interrupt OCI is not due to the first interrupt OCI1. The step advances to a step n5 to judge whether or not a second bit of the flag OCRFLg is set to "1" so as to confirm that it is due to a second interrupt OCI2. When the judgment is affirmative, the step advances to a step n6 to reset the second bit of the flag OCRFLG into "0". Then, at a step n7, a motor driving pulse is outputted with respect to a second motor driving circuit 2b for driving the second pump driving portion. At a step n8, a value to become, next, a time counter FRC=OCR2 is obtained as preparation for generating the next second interrupt OCI2 so as to set the calculation result in the second register OCR2. Then, the step returns to the interrupt address so as to resume the temporarily interrupted program.
When the judgment of the step n5 is negative, it follows that the interrupt OCI has been generated although both the first interrupt OCI1 and the second interrupt OCI2 are not the cause. It is considered to be caused due to some disturbance. A proper error processing operation has only to be effected. The step is to return only to the address of the interrupt destination.
A problem in the conventional embodiment will be described hereinafter with the use of a timing chart of FIGS. 6(a)-6(d). FIG. 6 (a) shows a motor driving pulse when a stepping motor is caused to rotate with a driving method of 1-2 phase excitation. Four coils of A, B, C, D are provided in the motor. Eight coil excitement patterns from (1) to (8) are caused in order with the execution timing of a first interrupt OCI1 (or second interrupt OCI2) so as to cause the motor to rotate. Reference character d is the execution interval of an interrupt OCI1 (OCI2). The output of the motor driving pulse is to generate the excitation patterns. The patterns in the respective periods (1) through (8) are as follows. Reference numeral 1 shows an excited condition, and reference numeral 0 shows a non-excited condition.
______________________________________ A B C D ______________________________________ (1) 1 0 0 1 (2) 1 0 0 0 (3) 1 1 0 0 (4) 0 1 0 0 (5) 0 1 1 0 (6) 0 0 1 0 (7) 0 0 1 1 (8) 0 0 0 1 ______________________________________
As shown in FIG. 6 (a), the stepping motor is caused to rotate by the phase change of the excitation with respect to four coils A, B, C, D of the stepping motor in the time interval value d of the motor driving pulse. It is originally desired that the composite magnetic field by four coils not be changed across the interval of time d. The delay time t.sub.0 does not matter when it is short as in FIG. 6 (b) if the time delay by the interrupt processing operation except for the driving operation of the motor is caused. As the additional function of the fluid transfusing pump is increased as described hereinabove, the interrupt processing operation except for the driving operation of the motor increases so that the time delay becomes the time t.sub.e of the length which cannot be tolerated as in FIG. 6(c). At such a time, sufficient excitation time necessary for the rotation thereof is not given with respect to the stepping motor, thus resulting in disengaged motor condition. In the worst condition, the motor may be stopped.
The concrete example will be described. There are, for example, a sensor data sample demand (Int1) for upper/lower flow choke detection, a sensor data sample demand (Int2) for air bubble detection and a power voltage sample demand (Int3) as an interrupt processing operation the software has to execute except for the motor driving operation. Assume that a delaying operation is effected 500 nsec by 500 nsec which is an execution cycle time of the microprocessor 100 in a certain timing and an interrupt demand is caused in the order of the OCI1, the int1, int2 the Int3, the OCI2. The execution time of the respective modules is as follows.
______________________________________ OCI1 100 .mu.sec Int1 30 .mu.sec Int2 30 .mu.sec Int3 30 .mu.sec OCI2 100 .mu.sec ______________________________________
A motor is required to be rotated so that the time interval value d becomes EQU d=450 .mu.sec
when the fluid transfusing pump is operated at the highest speed (fluid transfusing speed 1999 ml/hr).
In order to cause the motor to rotate without disengagement thereof, the delay time t.sub.e to be tolerated becomes as follows EQU t.sub.e =d/3=150 .mu.sec
because it can be ensured experimentally that the time delay till the d/3 is tolerated with respect to the ideal time interval value d. In the above described embodiment, the time delay of EQU 100+30+30+30 =190 (.mu.sec)
is caused (see FIG. 6(d)) with respect to the second interrupt OCI2 in the above described embodiment. As it exceeds the maximum delay time t.sub.e (=150 .mu.sec) to be tolerated, the rotation with respect to the second interrupt OCI2 cannot be guaranteed. Namely, the disengagement of the motor may cause it to stop. The multiple functions interfere with the pump driving operation which is the original function of the fluid transfusing pump. A possibility of causing such a problem can not be allowed by any means in the fluid transfusing pump as medical curing apparatuses which have influences upon human lives.
As one measure for solving it, it is considered to increase the number of microprocessors to reduce the burdens of the microprocessor. Increased cost per fluid transfusing pump is caused and data communication for the operation control among the microprocessors is required. Accordingly, the solving measures are not realistic. As another measure, it is considered to use a faster microprocessor. The microprocessor however is of higher cost, and the respective circuit portions of the fluid transfusing pump are required to be designed again in accordance with the higher speed microprocessor. Therefore, more time is taken for the development, and stupendous investments are required.